subprocess = None
def get_child_nodes(node):
+ assert node.tagName == 'object'
nodes = []
for child in node.childNodes:
if child.nodeType == Node.TEXT_NODE:
return nodes
def get_object_properties(node):
+ assert node.tagName == 'object'
properties = {}
for child in node.childNodes:
if child.nodeType == Node.TEXT_NODE:
properties[child.getAttribute('name')] = value
return properties
+def get_property(node, property_name):
+ assert node.tagName == 'object'
+ properties = get_object_properties(node)
+ return properties.get(property_name)
+
def get_object_node(child_node):
assert child_node.tagName == 'child'
nodes = []
assert len(nodes) == 1, nodes
return nodes[0]
+
class GtkBuilderConverter(object):
def __init__(self, skip_windows, root):
self.root_objects.append(obj)
return obj
- def _get_property(self, node, property_name):
- properties = get_object_properties(node)
- return properties.get(property_name)
-
def _parse(self):
glade_iface = self._dom.getElementsByTagName("glade-interface")
assert glade_iface, ("Badly formed XML, there is "
if (children and
children[0].getAttribute('internal-child') == 'image'):
image = get_object_node(children[0])
- properties['stock_id'] = self._get_property(image, 'stock')
+ properties['stock_id'] = get_property(image, 'stock')
elif object_class == 'GtkMenuItem':
name = 'GtkAction'
- label = self._get_property(node, 'label')
+ label = get_property(node, 'label')
if label is not None:
properties['label'] = label
elif object_class == 'GtkSeparatorMenuItem':
else:
raise NotImplementedError(object_class)
- if self._get_property(node, 'use_stock') == 'True':
- properties['stock_id'] = self._get_property(node, 'label')
+ if get_property(node, 'use_stock') == 'True':
+ properties['stock_id'] = get_property(node, 'label')
properties['name'] = object_id
action = self._create_object(name,
object_id,